const jwt = require("jsonwebtoken")
const { createUser, updateUserInfoById } = require("../service/user.service")
class UserController {
  async registerUser (ctx, next) {
    // 1.获取JSON传递数据(使用bodyparser)
    const { user_name, password } = ctx.request.body
    // 2.操作数据库
    const res = await createUser(user_name, password)
    //3. 返回结果
    ctx.body = {
      code: 0,
      message: '创建用户成功',
      result: {
        id: res.id,
        user_name: res.user_name
      }
    }
  }
  async login (ctx, next) {
    // 1.获取JSON传递数据(使用bodyparser)
    const { user_name } = ctx.request.body
    // 2.获取用户信息(在token中的payload中，记录id,user_name,is_admin)
    const { password, ...res } = ctx.user
    //3. 返回结果,颁发jwt令牌
    ctx.body = {
      code: 0,
      message: `欢迎回来,${user_name}`,
      result: {
        token: jwt.sign(res, process.env.JWT_SECRET, { expiresIn: '1d' })
      }
    }
  }
  /**修改密码 */
  async modifyPassword (ctx, next) {
    // 1.获取用户信息
    const id = ctx.state.user.id
    const { password } = ctx.request.body
    // 2.操作数据库
    const result = await updateUserInfoById({ id, password })
    if (result) {
      ctx.body = {
        code: 0,
        message: '修改密码成功',
        result: '',
      }
    } else {
      ctx.body = {
        code: '10007',
        message: '修改密码失败',
        result: '',
      }
    }

  }
}
module.exports = new UserController()